package bean;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import model.Usuario;
import model.UsuarioRaiz;
import dao.DaoUsuario;

@ManagedBean
@SessionScoped
public class UsuarioBean {

	private Usuario usuario;
	private DataModel<Usuario> usuarios;
	private DaoUsuario dao = new DaoUsuario();
	
	public Usuario getUsuario() {return usuario;}
	public void setUsuario(Usuario u) {usuario = u;}
	
	
	public DataModel<Usuario> getUsuarios() {
		List<Usuario> lista = dao.findAll();
		usuarios = new ListDataModel<Usuario>(lista);
		return usuarios;
	}
	
	public void salvar() {
		FacesContext fc = FacesContext.getCurrentInstance();
		dao.persist(usuario);
		fc.addMessage(null, new FacesMessage("Cadastro efetuado com sucesso", usuario.getNome())); 
	}
	
	public void load(ActionEvent e){
		usuario = (Usuario)(usuarios.getRowData());
	}
	
	public void create(ActionEvent e) {
		usuario = new UsuarioRaiz();
	}
	public void update(ActionEvent e) {
		FacesContext fc = FacesContext.getCurrentInstance();
		dao.merge(usuario);
		fc.addMessage(null, new FacesMessage("Cadastro alterado com sucesso", usuario.getNome())); 
	}
	
}
